這篇不是來自筆記,卻是協助PM掌控弱掃修正進度,是少數用Regex來做專案管理的。
客戶要求弱點要全修完才能驗收,幾乎是每天弱掃,所以用Excel來管理,但如何透過Regex加速建立弱掃清單呢?以下是Checkmarx報告PDF片段:
將pdf裡「掃瞄結果摘要」那張表用Copy方式變成純文字貼到文字編輯器(我的是Sublime),只需要低風險即可,如上圖的選取範圍,在Sublime內容如下:
Client DOM XSS 8 高風險
Client Potential XSS 4 中風險
Client Potential Code Injection 2 中風險
Missing HSTS Header 1 中風險
SSRF 1 中風險
掃描結果摘要
PAGE 30 OF 155
Unchecked Input For Loop Condition 1 中風險
Client JQuery Deprecated Symbols 21 低風險
Client DOM Open Redirect 8 低風險
Spring Overly Permissive Cross Origin Resource Sharing Policy 4 低風險
Spring Missing Content Security Policy 1 低風險
砍掉「掃描結果摘要」與「PAGE 30 OF 155」,在Sublime使用Regex置換
Find
(.+) (\d+) (.)風險
Replace
\1\t\2\t\3
得到以下結果,每一欄以Tab分隔
Client DOM XSS 8 高
Client Potential XSS 4 中
Client Potential Code Injection 2 中
Missing HSTS Header 1 中
SSRF 1 中
Unchecked Input For Loop Condition 1 中
Client JQuery Deprecated Symbols 21 低
Client DOM Open Redirect 8 低
Spring Overly Permissive Cross Origin Resource Sharing Policy 4 低
Spring Missing Content Security Policy 1 低
再將內容貼到Excel第二列起,整理出當日弱掃結果統計及後續處理,如下:
因為是TAB分隔欄位,會被當作CSV格式,貼上Excel會自動分隔,主要欄位是弱點名稱、數量、風險,第四個欄位是日期,上次弱掃統計,手動加上,第五個欄位由PM指定處理人員,第六個欄位由處理人員回報狀況。
當時管控方式就是每次弱掃報告一出來就新增一個當日頁籤來追蹤管理,這看起來像issue trace系統要做的,但是每個弱點都要開個的issue,可能還不及用Excel管理一目瞭然。